%%%-------------------------------------------------------------------
%%% @author mirahs(2892727493@qq.com)
%%% @doc
%%%     角色数据存储结构
%%% @end
%%%-------------------------------------------------------------------

%% 角色数据
-define(role_data_ver, 1).
-record(role_data, {
    rid = 0        %角色id

    ,ver = ?role_data_ver

    ,base           %基础数据 #role_base{}
    ,ext            %扩展数据 #role_ext{}
}).

%% 角色基础属性(保存在角色基础表)
-define(role_base_ver, 1).
-record(role_base, {
    rid = 0            %角色id

    ,ver = ?role_base_ver

    ,sid = 0            %服务器id
    ,account = <<>>     %账号
    ,name = <<>>        %昵称
    ,sex = 0            %性别
    ,label = 0          %特殊标识，比如标记是否GM，是否新手指导员等
    ,lev = 0            %等级

    ,status = 0         %角色状态
    ,online_time = 0    %累计在线时长(秒)
    ,day_online = 0     %今日在线时长(秒)
    ,last_charge_time = 0 	%最后充值时间 0

    ,reg_time = 0       %注册时间戳
    ,reg_ip = <<>>      %注册ip
    ,login_time = 0     %本次登录时间戳
    ,login_ip = <<>>    %登录ip
    ,logout_time = 0    %本次离线时间戳，本次离线时间只在离线时记录,默认为0
    ,last_login = 0     %上次登录时间戳，从未登录的角色上次时间戳为0
    ,last_logout = 0    %上次离线时间戳，从未登录的角色上次时间戳为0

    ,exp = 0            %经验
    ,gold = 0           %金币
    ,gold_bind = 0      %梆定金币
    ,charge = 0         %历史充值
    ,gold_consume = 0   %历史金币消费

    % 额外数据
    ,is_online = 0      %是否在线
    ,save_time = 0      %本次写磁盘的时间
}).

%% 角色扩展数据(data字段)
-define(role_ext_ver, 1).
-record(role_ext, {
    ver = ?role_ext_ver

    ,date_reset         %每天重置日期 {Y,M,D}
}).
